package com.cyan.note.mapper;

import com.cyan.note.entity.OrderWorker;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单打手关联Mapper接口
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
@Mapper
public interface OrderWorkerMapper {

    /**
     * 根据ID查询
     */
    OrderWorker selectById(@Param("id") Long id);

    /**
     * 插入订单打手关联
     */
    int insert(OrderWorker orderWorker);

    /**
     * 更新订单打手关联
     */
    int updateById(OrderWorker orderWorker);

    /**
     * 删除订单打手关联
     */
    int deleteById(@Param("id") Long id);

    /**
     * 根据订单ID查询打手列表
     */
    List<OrderWorker> selectByOrderId(@Param("orderId") Long orderId);

    /**
     * 根据打手ID查询订单列表
     */
    List<OrderWorker> selectByWorkerId(@Param("workerId") Long workerId);

    /**
     * 删除订单的所有打手分配
     */
    int deleteByOrderId(@Param("orderId") Long orderId);

    /**
     * 根据订单ID和打手ID查询
     */
    OrderWorker selectByOrderAndWorker(@Param("orderId") Long orderId, @Param("workerId") Long workerId);

    /**
     * 查询打手当前进行中的订单数
     */
    Integer countActiveOrdersByWorker(@Param("workerId") Long workerId);
}